package org.luxor.commons.core.web;

/**
 * 异常状态码定义
 * <p>
 * 建议规格：{1位,范围分级}+{2位,项目编码}+{2位,模块编码}+{3位,错误码} = 8位固定码
 * <p>
 * 含义说明
 * 1.范围分级：固定1位，代表引起异常原因的所属边界范围 (1 代表系统自身缺陷; 2 代表调用方不合规操作; 3 代表外部支撑端故障)
 * 2.项目编码：固定2位，项目分类编码
 * 3.模块编码：固定2位，项目模块编码
 * 4.错误编码：固定3位，自定义异常码
 *
 * @author XinmingYan @date 2019/9/16
 */
public interface IRestStatus {

    /**
     * the status codes of per restful request.
     *
     * @return 0 if succeeded, 2xxx if client error, 1xxx or 3xxx if server side crash.
     */
    int code();

    /**
     * @return status enum name
     */
    String name();

    /**
     * @return message summary
     */
    String message();
}
